@echo off
rem 在执行命令时，允许在变量被读取时而不是在定义时进行变量扩展。
setlocal enabledelayedexpansion

rem 设置UTF8编码
rem chcp 65001

rem 获取当前目录
set "currentDir=%cd%"
set "new_str="

rem 创建或清空 readme.md 文件
echo # readme > "%currentDir%\readme.md"

rem 使用 dir 命令递归遍历目录并处理.md 文件
for /r "%currentDir%" %%i in (*.md) do (
    set "filename=%%~ni"
    set "filepathd=%%~dpi"
    set "filepath=%%~pi"
    set "extension=%%~xi"
    set "fullname=%%i"

    rem 排除名为 readme.md 的文件
    if /i not "!filename!!extension!"=="readme.md" (

        rem 替换字符串，获取文件的相对路径
        set "new_string=!fullname:%currentDir%=%new_str%!"
        rem 替换字符串，设置为反斜杠，且以.开头
        set "new_string=.!new_string:\=/!"

        rem 构建输出内容
        set "outputLine= * [!filename!](!new_string!)"

        rem 将输出内容追加到 readme.md 文件中
        echo!outputLine! >> "%currentDir%\readme.md"
    )
)

echo Output written to %currentDir%\readme.md
rem pause